Como crear clases en C++.
La sintaxis básica para crear una clase es:
class MiClase{
}
Un ejemplo un poco más elaborado con elementos privados y publicos es el siguiente:
#include <iostream>
#include <string>
class Persona {
private:
std::string nombre;
int edad;
public:
Persona(std::string nuevoNombre, int nuevaEdad)
: nombre{nuevoNombre}, edad{nuevaEdad} {}
std::string getNombre() {
return nombre;
}
int getEdad() {
return edad;
}
void presentarse() {
std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
}
};
int main() {
Persona persona1("Carlos", 25);
persona1.presentarse();
std::cout << "El nombre extraido es: " << persona1.getNombre() << std::endl;
return 0;
}
Para crear un constructor lo hacemos usando el mismo nombre de la clase.
En este caso usamos la lista de inicialización de miembros (los dos puntos : despues del nombre del constructor y antes de {}) para establecer las variables en el constructor,
#include <iostream>
#include <string>
class Persona {
private:
std::string nombre;
int edad;
public:
// Las variables privadas se inicializan aquí, antes de abrir las llaves
Persona(std::string nuevoNombre, int nuevaEdad)
: nombre{nuevoNombre}, edad{nuevaEdad}
{
// El cuerpo del constructor queda completamente vacío
}
void presentarse() {
std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
}
};
int main() {
// Al crear el objeto, se envían los datos directamente a la lista de inicialización
Persona persona1("Carlos", 25);
persona1.presentarse();
return 0;
}
Para crear un destructor lo hacemos con virgulilla (~) y el nombre de la clase:
#include <iostream>
#include <string>
class Persona {
private:
std::string nombre;
int edad;
public:
// Constructor: Inicializa las variables privadas
Persona(std::string nuevoNombre, int nuevaEdad)
: nombre{nuevoNombre}, edad{nuevaEdad}
{
std::cout << "[Constructor] " << nombre << " ha nacido." << std::endl;
}
// Destructor: Se ejecuta automáticamente al destruir el objeto
~Persona() {
std::cout << "[Destructor] " << nombre << " ha sido liberado de la memoria." << std::endl;
}
void presentarse() {
std::cout << "Hola, me llamo " << nombre << " y tengo " << edad << " anos." << std::endl;
}
};
int main() {
std::cout << "--- Inicio del programa ---" << std::endl;
// Se crea el objeto dentro de este bloque de código
{
Persona persona1("Carlos", 25);
persona1.presentarse();
// Al llegar a la llave de cierre, persona1 sale de su ámbito (scope)
}
std::cout << "--- Fin del programa ---" << std::endl;
return 0;
}
C++ | clases